﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LightSO.ILibrary
{
    public interface ILibraryFactory
    {
        T Create<T>() where T : InterfaceBase;

        T Single<T>() where T : InterfaceBase;

        T1 Create<T1, T2>()
            where T1 : class, InterfaceBase, IRepository<T2>
            where T2 : EntityBase, new();

        T1 Single<T1, T2>()
            where T1 : class, InterfaceBase, IRepository<T2>
            where T2 : EntityBase, new();
    }
}

